===== Shorewall =====

Shorewall permet d'utiliser son serveur Linux en routeur/firewall. Nous allons voir ici la configuration pour un serveur équipé de 2 cartes réseaux.
Nous définirons que l'interface eth0 correspond à la carte réseau reliée à internet et l'interface eth1 correspond à celle reliée au réseau local.

Installation : 

<code>
sudo apt-get install shorewall
</code>

La configuration de shorewall se fait dans /etc/shorewall mais pour l'instant le dossier ne contient pas tous les fichiers de configuration. Il faut donc copier le contenu de /usr/share/doc/shorewall/examples/two-interfaces dans le dossier /etc/shorewall .

<code>
sudo cp /usr/share/doc/shorewall/examples/two-interfaces/* /etc/shorewall/
</code>

Ensuite il faut décompresser les fichiers .gz qui s'y trouvent.
<code>
sudo gzip -d interfaces.gz masq.gz policy.gz rules.gz
</code>

=== Éditer les fichiers de configurations ===

== /etc/shorewall/interfaces ==

Permet de définir à quoi correspondent nos 2 interfaces réseaux eth0 et eth1.

<code>
#ZONE   INTERFACE       BROADCAST       OPTIONS
net     eth0            detect          dhcp,tcpflags,routefilter,nosmurfs,logmartians
loc     eth1            detect          dhcp,tcpflags,detectnets,nosmurfs
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
</code>

=== /etc/shorewall/zones ===

Permet de définir les zones que nous allons utiliser dans la configuration de shorewall.

<code>
#ZONE   TYPE    OPTIONS                 IN                      OUT
#                                       OPTIONS                 OPTIONS
fw      firewall
net     ipv4
loc     ipv4

#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE
</code>

=== /etc/shorewall/policy ===

Permet d'accepter ou de rejeter le trafic entre les différentes zones.

<code>
# Policies for traffic originating from the local LAN (loc)
#
# If you want to force clients to access the Internet via a proxy server
# on your firewall, change the loc to net policy to REJECT info.
loc             net             ACCEPT
loc             $FW             ACCEPT
loc             all             REJECT          info

#
# Policies for traffic originating from the firewall ($FW)
#
# If you want open access to the Internet from your firewall, change the
# $FW to net policy to ACCEPT and remove the 'info' LOG LEVEL.
# This may be useful if you run a proxy server on the firewall.
$FW             net             ACCEPT
$FW             loc             ACCEPT
$FW             all             ACCEPT

#
# Policies for traffic originating from the Internet zone (net)
#
net             $FW             DROP            info
net             loc             DROP            info
net             all             DROP            info

# THE FOLLOWING POLICY MUST BE LAST
all             all             REJECT          info

#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
</code>

=== /etc/shorewall/rules ===

Ceci est le fichier de configuration de la partie firewall.

A vous de le configurer selon vos besoins.

=== /etc/shorewall/routestopped ===

Permet le routage sur les interfaces définis dans ce fichier lorsque shorewall n'est pas démarré.

<code>
#INTERFACE      HOST(S)                  OPTIONS
eth1            -
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
</code>

Par défaut shorewall ne peut pas démarrer tant que vous n'avez pas modifier le fichier /etc/default/shorewall et changer la ligne : 

<code>
startup=0
</code>

par

<code>
startup=1
</code>


Vous pouvez maintenant démarrer shorewall : 

<code>
sudo /etc/init.d/shorewall start
</code>




